"""
 Flash OS Routines (Automagically Generated)
 Copyright (c) 2017-2017 ARM Limited
"""

flash_algo = {
    'load_address' : 0x20000000,
    'instructions' : [
        0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA, 0x2A001E52, 0x4770D1F2,
        0x4603B510, 0xD0022A01, 0xD1222A02, 0xBF00E000, 0x68004872, 0x6070F440, 0x60204C70, 0x4C6F4870,
        0x60203C0C, 0x6020486F, 0x1D24486F, 0x486F6020, 0x486A6020, 0x68001D00, 0x1F80F410, 0xF245D108,
        0x4C6B5055, 0x20066020, 0xF6406060, 0x60A070FF, 0xBF00BF00, 0xBD102000, 0x29014601, 0x2902D002,
        0xE000D10F, 0x485DBF00, 0x68003814, 0x0002F040, 0x3A144A5A, 0x46106010, 0xF0406800, 0x60100001,
        0xBF00BF00, 0x47702000, 0x48544601, 0x68003814, 0x7000F440, 0x3A144A51, 0x46106010, 0xF0406800,
        0x60100008, 0x60082000, 0xF64AE003, 0x4A5020AA, 0x484A6010, 0xF0106800, 0xD1F60F01, 0x38144847,
        0xF4206800, 0x4A457000, 0x60103A14, 0x68004610, 0x0008F020, 0x20006010, 0x46034770, 0x47702001,
        0x4603B530, 0xF1012480, 0xF02000FF, 0x483B01FF, 0x68003814, 0x6080F440, 0x3D144D38, 0x46286028,
        0xF0406800, 0x60280008, 0xE005BF00, 0x60186810, 0x1D121D1B, 0x1F241F09, 0x2C00B109, 0xE003D1F6,
        0x20AAF64A, 0x60284D32, 0x6800482C, 0x0F01F010, 0x482AD1F6, 0xF4106800, 0xD0076F70, 0x68004827,
        0x6070F440, 0x60284D25, 0xBD302001, 0x38144823, 0xF4206800, 0x4D216080, 0x60283D14, 0x68004628,
        0x0008F020, 0x46286028, 0xF4406800, 0x60286080, 0x68004628, 0x0008F040, 0x24806028, 0x6810E005,
        0x1D1B6018, 0x1F091D12, 0xB1091F24, 0xD1F62C00, 0xF64AE003, 0x4D1620AA, 0x48106028, 0xF0106800,
        0xD1F60F01, 0x6800480D, 0x6F70F410, 0x480BD007, 0xF4406800, 0x4D096070, 0x20016028, 0x4807E7C5,
        0x68003814, 0x6080F420, 0x3D144D04, 0x46286028, 0xF0206800, 0x60280008, 0xE7B62000, 0x40023C18,
        0x89ABCDEF, 0x02030405, 0x8C9DAEBF, 0x13141516, 0x40003000, 0x00000000
    ],

    'pc_Init'            : 0x20000021,
    'pc_UnInit'          : 0x20000079,
    'pc_EraseSector'     : 0x200000A9,
    'pc_ProgramPage'     : 0x20000101,
    'pc_Verify'          : 0x12000001F,
    'pc_EraseChip'       : 0x12000001F,
    'pc_BlankCheck'      : 0x200000FB,
    'pc_Read'            : 0x12000001F,
    
    'static_base'        : 0x20000400,
    'begin_data'         : 0x20000800,
    'begin_stack'        : 0x20000C00,

    'analyzer_supported' : False,

    # Relative region addresses and sizes
    'ro_start'           : 0x00000000,
    'ro_size'            : 0x000001F4,
    'rw_start'           : 0x000001F4,
    'rw_size'            : 0x00000004,
    'zi_start'           : 0x000001F8,
    'zi_size'            : 0x00000000,

    # Flash information
    'flash_start'        : 0x08000000,
    'flash_size'         : 0x00060000,
    'flash_page_size'    : 0x00000100,
}
